package example.cdx.com.mapdemo.activity;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;

import example.cdx.com.mapdemo.R;

public class BasicMapActivity extends AppCompatActivity {

    private Context mContext;//上下文
    private MapView mMapView;//地图组件
    private AMap mAMap;//地图组件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_basic_map);

        initParamsAndValues();

        initView(savedInstanceState);

        initMap();
    }

    private void initMap() {
        //1、AMap类是地图器的控制类，用来操作地图。
        //2、他可以实现下面的工作：
            //2.1、地图图层切换（卫星图，黑夜图）
            //2.2、改变地图的状态（地图旋转角度，俯仰角，中心点坐标和缩放级别）
            //2.3、添加标记
            //2.4、绘制几何图形
            //2.5、各种事件的监听（点击，手势等）
        //3、地图中重要的工作都得依赖这个类
            if (mAMap == null){
            mAMap = mMapView.getMap();
        }
    }

    private void initParamsAndValues() {
        mContext = this;
    }

    private void initView(Bundle savedInstanceState) {
        mMapView = findViewById(R.id.map);
        //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState)，创建地图
        mMapView.onCreate(savedInstanceState);
    }

    @Override
    protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView.onResume ()，重新绘制加载地图
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView.onPause ()，暂停地图的绘制
        mMapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy()，销毁地图
        mMapView.onDestroy();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState)，保存地图当前的状态
        mMapView.onSaveInstanceState(outState);
    }
}
